const { Sequelize , DataTypes } = require('sequelize');

// console.log( Object.getOwnPropertyNames( Sequelize.prototype ) );

const sequelize = new Sequelize({
    host: 'localhost',
    port: 3306,
    username: 'root' ,
    password: '' ,
    database: 'ecut',
    dialect: 'mysql'
});

// 指定模型名称
const modelName = 'Panda';

// 指定 JavaScript 对象的属性 到 数据库中相应列的对应关系
const attributes = {
    // 定义模型中的属性
    id: {
        // 指示属性的类型(与数据库中相应的列类型对应)
        type: DataTypes.INTEGER,
        // 指示数据库主键是否自动增长
        autoIncrement: true,
        // 指示当前属性对应的列是否是主键
        primaryKey: true
    } ,
    name: {
        type: DataTypes.STRING,
        allowNull: true
    } ,
    gender: {
        type: DataTypes.STRING
    } ,
    birthdate: {
        type: DataTypes.DATE
    }
};

const options = {
    // 显示指定数据库表名称
    tableName: 't_pandas',
    // 指示不要为新创建的模型添加 createAt 和 updateAt 属性
    timestamps: false
}

// 通过 Sequelize.prototype.define 方法来定义 Model
const Panda = sequelize.define( modelName, attributes, options );

console.log( Object.getOwnPropertyNames( Panda.prototype ) );
